#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
    printf("程序开始! 进程id: %d, 本进程父进程id:%d\n", getpid(), getppid());
    pid_t pid = fork();

    if(pid < 0)
    {
        perror("fork failed");
        exit(1);
    }
    else if(pid == 0)
    {
        //  子进程:执行后立即退出
        int count = 5;
        while(--count)
        {
       printf("子进程(PID: %d) 开始运行, 即将退出...%d\n", getpid(), count);
            sleep(1);
        }   
        exit(0);
    }
    else 
    {
        // 父进程：不回收子进程状态，进入休眠（保持运行）
        while(1)
        {    
            printf("父进程 (PID: %d) 运行中，不回收子进程...\n", getpid());
            sleep(2);
        }
        // 注意：这里故意不调用 wait()/waitpid()
    }

    printf("程序结束\n");

    return 0;
}
